summaryrefslogtreecommitdiff
path: root/app/[lng]/evcp
diff options
context:
space:
mode:
Diffstat (limited to 'app/[lng]/evcp')
-rw-r--r--app/[lng]/evcp/(evcp)/(master-data)/p-items/page.tsx (renamed from app/[lng]/evcp/(evcp)/(procurement)/p-items/page.tsx)124
-rw-r--r--app/[lng]/evcp/(evcp)/(procurement)/legal-review/page.tsx87
2 files changed, 62 insertions, 149 deletions
diff --git a/app/[lng]/evcp/(evcp)/(procurement)/p-items/page.tsx b/app/[lng]/evcp/(evcp)/(master-data)/p-items/page.tsx
index e3810b5b..2b907a75 100644
--- a/app/[lng]/evcp/(evcp)/(procurement)/p-items/page.tsx
+++ b/app/[lng]/evcp/(evcp)/(master-data)/p-items/page.tsx
@@ -1,62 +1,62 @@
-import * as React from "react"
-import { type SearchParams } from "@/types/table"
-
-import { getValidFilters } from "@/lib/data-table"
-import { DataTableSkeleton } from "@/components/data-table/data-table-skeleton"
-import { Shell } from "@/components/shell"
-import { getProcurementItems } from "@/lib/procurement-items/service"
-import { ProcurementItemsTable } from "@/lib/procurement-items/table/procurement-items-table"
-import { searchParamsCache } from "@/lib/procurement-items/validations"
-import { InformationButton } from "@/components/information/information-button"
-
-interface IndexPageProps {
- searchParams: Promise<SearchParams>
-}
-
-export default async function IndexPage(props: IndexPageProps) {
- const searchParams = await props.searchParams
- const search = searchParamsCache.parse(searchParams)
-
- const validFilters = getValidFilters(search.filters)
-
- const promises = Promise.all([
- getProcurementItems({
- ...search,
- filters: validFilters,
- }),
- ])
-
- return (
- <Shell className="gap-2">
- <div className="flex items-center justify-between space-y-2">
- <div className="flex items-center justify-between space-y-2">
- <div>
- <div className="flex items-center gap-2">
- <h2 className="text-2xl font-bold tracking-tight">
- 1회성 품목 관리
- </h2>
- <InformationButton pagePath="evcp/procurement-items" />
- </div>
- <p className="text-muted-foreground">
- 입찰에서 사용하는 1회성 품목을 등록하고 관리합니다.
- </p>
- </div>
- </div>
- </div>
-
- <React.Suspense
- fallback={
- <DataTableSkeleton
- columnCount={8}
- searchableColumnCount={1}
- filterableColumnCount={2}
- cellWidths={["10rem", "20rem", "8rem", "12rem", "6rem", "8rem", "10rem", "10rem"]}
- shrinkZero
- />
- }
- >
- <ProcurementItemsTable promises={promises} />
- </React.Suspense>
- </Shell>
- )
-}
+import * as React from "react"
+import { type SearchParams } from "@/types/table"
+
+import { getValidFilters } from "@/lib/data-table"
+import { DataTableSkeleton } from "@/components/data-table/data-table-skeleton"
+import { Shell } from "@/components/shell"
+import { getProcurementItems } from "@/lib/procurement-items/service"
+import { ProcurementItemsTable } from "@/lib/procurement-items/table/procurement-items-table"
+import { searchParamsCache } from "@/lib/procurement-items/validations"
+import { InformationButton } from "@/components/information/information-button"
+
+interface IndexPageProps {
+ searchParams: Promise<SearchParams>
+}
+
+export default async function IndexPage(props: IndexPageProps) {
+ const searchParams = await props.searchParams
+ const search = searchParamsCache.parse(searchParams)
+
+ const validFilters = getValidFilters(search.filters)
+
+ const promises = Promise.all([
+ getProcurementItems({
+ ...search,
+ filters: validFilters,
+ }),
+ ])
+
+ return (
+ <Shell className="gap-2">
+ <div className="flex items-center justify-between space-y-2">
+ <div className="flex items-center justify-between space-y-2">
+ <div>
+ <div className="flex items-center gap-2">
+ <h2 className="text-2xl font-bold tracking-tight">
+ 1회성 품목 관리
+ </h2>
+ <InformationButton pagePath="evcp/procurement-items" />
+ </div>
+ <p className="text-muted-foreground">
+ 입찰에서 사용하는 1회성 품목을 등록하고 관리합니다.
+ </p>
+ </div>
+ </div>
+ </div>
+
+ <React.Suspense
+ fallback={
+ <DataTableSkeleton
+ columnCount={8}
+ searchableColumnCount={1}
+ filterableColumnCount={2}
+ cellWidths={["10rem", "20rem", "8rem", "12rem", "6rem", "8rem", "10rem", "10rem"]}
+ shrinkZero
+ />
+ }
+ >
+ <ProcurementItemsTable promises={promises} />
+ </React.Suspense>
+ </Shell>
+ )
+}
diff --git a/app/[lng]/evcp/(evcp)/(procurement)/legal-review/page.tsx b/app/[lng]/evcp/(evcp)/(procurement)/legal-review/page.tsx
deleted file mode 100644
index 44150492..00000000
--- a/app/[lng]/evcp/(evcp)/(procurement)/legal-review/page.tsx
+++ /dev/null
@@ -1,87 +0,0 @@
-// app/(routes)/legal-works/page.tsx 수정
-
-import * as React from "react";
-import { Metadata } from "next";
-import { type SearchParams } from "@/types/table";
-import { Shell } from "@/components/shell";
-import { DataTableSkeleton } from "@/components/data-table/data-table-skeleton";
-import { InformationButton } from "@/components/information/information-button";
-import { Badge } from "@/components/ui/badge"; // ✅ Badge 추가
-import { SearchParamsCacheLegalWorks } from "@/lib/legal-review/validations";
-import { getLegalWorks } from "@/lib/legal-review/service";
-import { LegalWorksTable } from "@/lib/legal-review/status/legal-table";
-
-export const dynamic = "force-dynamic";
-export const revalidate = 0;
-
-export const metadata: Metadata = {
- title: "법무검토 관리",
- description: "법무 검토 요청 및 답변을 관리합니다.",
-};
-
-interface LegalWorksPageProps {
- searchParams: Promise<SearchParams>;
-}
-
-export default async function LegalWorksPage({ searchParams }: LegalWorksPageProps) {
- const rawParams = await searchParams;
- const parsedSearch = SearchParamsCacheLegalWorks.parse(rawParams);
-
- // ✅ EvaluationTargetsPage와 동일한 패턴으로 currentYear 추가
- const currentYear = new Date().getFullYear();
-
- const promises = Promise.all([
- getLegalWorks(parsedSearch)
- ]);
-
- return (
- <Shell className="gap-4">
- {/* Header - EvaluationTargetsPage와 동일한 패턴 */}
- <div className="flex items-center justify-between space-y-2">
- <div className="flex items-center gap-2">
- <h2 className="text-2xl font-bold tracking-tight">법무검토 관리</h2>
- <InformationButton pagePath="evcp/legal-review" />
- {/* ✅ EvaluationTargetsPage와 동일하게 Badge 추가 */}
- <Badge variant="outline" className="text-sm">
- {currentYear}년
- </Badge>
- </div>
- </div>
-
- {/* Table */}
- <React.Suspense
- fallback={
- <DataTableSkeleton
- columnCount={13}
- searchableColumnCount={3}
- filterableColumnCount={4}
- cellWidths={[
- "3rem", // checkbox
- "4rem", // No.
- "5rem", // 구분
- "6rem", // 상태
- "8rem", // Vendor Code
- "12rem", // Vendor Name
- "4rem", // 긴급여부
- "7rem", // 답변요청일
- "7rem", // 의뢰일
- "7rem", // 답변예정일
- "7rem", // 법무완료일
- "8rem", // 검토요청자
- "8rem", // 법무답변자
- "4rem", // 첨부파일
- "8rem", // actions
- ]}
- shrinkZero
- />
- }
- >
- {/* ✅ currentYear prop 추가 - EvaluationTargetsTable과 동일한 패턴 */}
- <LegalWorksTable
- promises={promises}
- currentYear={currentYear}
- />
- </React.Suspense>
- </Shell>
- );
-} \ No newline at end of file